package com.aloda.service;

import com.aloda.dto.*;
import com.aloda.entity.Emp;
import com.aloda.query.EmpPageDTO;
import com.aloda.result.PageResult;
import com.aloda.vo.EmpLoginVO;
import com.aloda.vo.EmpPageVO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletResponse;

import java.util.List;

/**
 * @author aloda
 * @description 针对表【emp(管理员表)】的数据库操作Service
 * @createDate 2024-12-15 10:45:11
 */
public interface EmpService extends IService<Emp> {

    /**
     * 通过账号密码登录
     * @param empLoginDTO
     * @return
     */
    EmpLoginVO loginByUnAndPw(EmpLoginDTO empLoginDTO);

    /**
     * 分页查询
     * @param empPageDTO
     * @return
     */
    PageResult<EmpPageVO> pageQuery(EmpPageDTO empPageDTO);

    /**
     * 新增员工
     * @param empAddDTO
     */
    Integer addEmp(EmpAddDTO empAddDTO);

    /**
     * 编辑员工
     * @param empEditDTO
     * @return
     */
    Integer editEmp(EmpEditDTO empEditDTO);

    /**
     * 重置密码
     * @param id
     */
    void resetPassword(Long id);

    /**
     * 员工编辑个人信息
     * @param empInfoDTO
     */
    void empEditInfo(EmpInfoDTO empInfoDTO);

    /**
     * 员工修改个人密码
     * @param empEditPwDTO
     */
    void empEditPassword(EmpEditPwDTO empEditPwDTO);

    /**
     * 导出员工信息到Excel
     *
     * @param response HttpServletResponse
     */
    void exportEmpToExcel(HttpServletResponse response, List<Long> ids);
}
